home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
man
/
cat.1
/
gnugrep.1
< prev
next >
Wrap
Text File
|
1995-07-25
|
11KB
|
265 lines
GGGGRRRREEEEPPPP((((1111)))) GGGGNNNNUUUU PPPPrrrroooojjjjeeeecccctttt ((((1111999988888888 DDDDeeeecccceeeemmmmbbbbeeeerrrr 11113333)))) GGGGRRRREEEEPPPP((((1111))))
NNNNAAAAMMMMEEEE
grep, egrep - print lines matching a regular expression
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
ggggrrrreeeepppp [ ----CCCCVVVVbbbbcccchhhhiiiillllnnnnssssvvvvwwwwxxxx ] [ ----_n_u_m ] [ ----AAAABBBB _n_u_m ] [ [ ----eeee ] _e_x_p_r |
----ffff _f_i_l_e ] [ _f_i_l_e_s ... ]
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_G_r_e_p searches the files listed in the arguments (or standard
input if no files are given) for all lines that contain a
match for the given _e_x_p_r. If any lines match, they are
printed.
Also, if any matches were found, _g_r_e_p will exit with a
status of 0, but if no matches were found it will exit with
a status of 1. This is useful for building shell scripts
that use _g_r_e_p as a condition for, for example, the _i_f
statement.
When invoked as _e_g_r_e_p the syntax of the _e_x_p_r is slightly
different; See below.
RRRREEEEGGGGUUUULLLLAAAARRRR EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS
(grep) (egrep) (explanation)
_c _c a single (non-meta) character
matches itself.
. . matches any single character except
newline.
\? ? postfix operator; preceeding item
is optional.
* * postfix operator; preceeding item 0
or more times.
\+ + postfix operator; preceeding item 1
or more times.
\| | infix operator; matches either
argument.
^ ^ matches the empty string at the
beginning of a line.
$ $ matches the empty string at the end
of a line.
\< \< matches the empty string at the
beginning of a word.
Page 1 (printed 3/9/94)
GGGGRRRREEEEPPPP((((1111)))) GGGGNNNNUUUU PPPPrrrroooojjjjeeeecccctttt ((((1111999988888888 DDDDeeeecccceeeemmmmbbbbeeeerrrr 11113333)))) GGGGRRRREEEEPPPP((((1111))))
\> \> matches the empty string at the end
of a word.
[_c_h_a_r_s] [_c_h_a_r_s] match any character in the given
class; if the first character after
[ is ^, match any character not in
the given class; a range of
characters may be specified by
_f_i_r_s_t-_l_a_s_t; for example, \W (below)
is equivalent to the class
[^A-Za-z0-9]
\( \) ( ) parentheses are used to override
operator precedence.
\_d_i_g_i_t \_d_i_g_i_t \_n matches a repeat of the text
matched earlier in the regexp by
the subexpression inside the nth
opening parenthesis.
\ \ any special character may be
preceded by a backslash to match it
literally.
(the following are for compatibility with GNU Emacs)
\b \b matches the empty string at the
edge of a word.
\B \B matches the empty string if not at
the edge of a word.
\w \w matches word-constituent characters
(letters & digits).
\W \W matches characters that are not
word-constituent.
Operator precedence is (highest to lowest) ?, *, and +,
concatenation, and finally |. All other constructs are
syntactically identical to normal characters. For the truly
interested, the file dfa.c describes (and implements) the
exact grammar understood by the parser.
OOOOPPPPTTTTIIIIOOOONNNNSSSS
----AAAA _n_u_m
print <num> lines of context after every matching line
----BBBB _n_u_m
print _n_u_m lines of context before every matching line
----CCCC print 2 lines of context on each side of every match
Page 2 (printed 3/9/94)
GGGGRRRREEEEPPPP((((1111)))) GGGGNNNNUUUU PPPPrrrroooojjjjeeeecccctttt ((((1111999988888888 DDDDeeeecccceeeemmmmbbbbeeeerrrr 11113333)))) GGGGRRRREEEEPPPP((((1111))))
----_n_u_m print _n_u_m lines of context on each side of every match
----VVVV print the version number on the diagnostic output
----bbbb print every match preceded by its byte offset
----cccc print a total count of matching lines only
----eeee _e_x_p_r
search for _e_x_p_r; useful if _e_x_p_r begins with -
----ffff _f_i_l_e
search for the expression contained in _f_i_l_e
----hhhh don't display filenames on matches
----iiii ignore case difference when comparing strings
----llll list files containing matches only
----nnnn print each match preceded by its line number
----ssss run silently producing no output except error messages
----vvvv print only lines that contain no matches for the <expr>
----wwww print only lines where the match is a complete word
----xxxx print only lines where the match is a whole line
SSSSEEEEEEEE AAAALLLLSSSSOOOO
emacs(1), ed(1), sh(1), _G_N_U _E_m_a_c_s _M_a_n_u_a_l
IIIINNNNCCCCOOOOMMMMPPPPAAAATTTTIIIIBBBBIIIILLLLIIIITTTTIIIIEEEESSSS
The following incompatibilities with UNIX _g_r_e_p exist:
The context-dependent meaning of * is not quite the
same (grep only).
----bbbb prints a byte offset instead of a block offset.
The {_m,_n} construct of System V grep is not
implemented.
BBBBUUUUGGGGSSSS
GNU _e?_g_r_e_p has been thoroughly debugged and tested by
several people over a period of several months; we think
it's a reliable beast or we wouldn't distribute it. If by
some fluke of the universe you discover a bug, send a
detailed description (including options, regular
expressions, and a copy of an input file that can reproduce
it) to me, mike@wheaties.ai.mit.edu.
Page 3 (printed 3/9/94)
GGGGRRRREEEEPPPP((((1111)))) GGGGNNNNUUUU PPPPrrrroooojjjjeeeecccctttt ((((1111999988888888 DDDDeeeecccceeeemmmmbbbbeeeerrrr 11113333)))) GGGGRRRREEEEPPPP((((1111))))
There is also a newsgroup, gnu.utils.bug, for reporting FSF
utility programs' bugs and fixes; but before reporting
something as a bug, please try to be sure that it really is
a bug, not a misunderstanding or a deliberate feature.
Also, include the version number of the utility program you
are running in _e_v_e_r_y bug report that you send in. Please do
not send anything but bug reports to this newsgroup.
AAAAVVVVAAAAIIIILLLLAAAABBBBIIIILLLLIIIITTTTYYYY
GNU _g_r_e_p is free; anyone may redistribute copies of _g_r_e_p to
anyone under the terms stated in the GNU General Public
License, a copy of which may be found in each copy of _G_N_U
_E_m_a_c_s. See also the comment at the beginning of the source
code file grep.c.
Copies of GNU _g_r_e_p may sometimes be received packaged with
distributions of Unix systems, but it is never included in
the scope of any license covering those systems. Such
inclusion violates the terms on which distribution is
permitted. In fact, the primary purpose of the General
Public License is to prohibit anyone from attaching any
other restrictions to redistribution of any of the Free
Software Foundation programs.
AAAAUUUUTTTTHHHHOOOORRRRSSSS
Mike Haertel wrote the deterministic regexp code and the
bulk of the program.
James A. Woods is responsible for the hybridized search
strategy of using Boyer-Moore-Gosper fixed-string search as
a filter before calling the general regexp matcher.
Arthur David Olson contributed code that finds fixed strings
for the aforementioned BMG search for a large class of
regexps.
Richard Stallman wrote the backtracking regexp matcher that
is used for \_d_i_g_i_t backreferences, as well as the getopt
that is provided for 4.2BSD sites. The backtracking matcher
was originally written for GNU Emacs.
D. A. Gwyn wrote the C alloca emulation that is provided so
System V machines can run this program. (Alloca is used
only by RMS' backtracking matcher, and then only rarely, so
there is no loss if your machine doesn't have a "real"
alloca.)
Scott Anderson and Henry Spencer designed the regression
tests used in the "regress" script.
Paul Placeway wrote the original version of this manual
page.
Page 4 (printed 3/9/94)